package org.spal.cliente.carrocompras

import org.spal.Producto

class CarroComprasService {
	ArrayList<ItemCarro> items

	CarroComprasService(){
		items = new ArrayList<ItemCarro>()
	}

	void agregar(Producto producto){
		boolean nuevo = true

		for(ItemCarro item : items){
			if(item.producto.id == producto.id){
				nuevo = false
				item.incrementar()
			}
		}

		if(nuevo){
			ItemCarro item = new ItemCarro(producto, 1)
			items.add(item)
		}
	}

	void remover(Producto producto){
		outerloop:
		for(ItemCarro item : items){
			if(item.producto.id == producto.id){
				item.decrementar();
				if(item.cantidad == 0)
					items.remove(item)
				break outerloop
			}
		}
	}

	void limpiar(Producto producto){
		outerloop:
		for(ItemCarro item : items){
			if(item.producto.id == producto.id){
				items.remove(item)
				break outerloop
			}
		}
	}
	
	void limpiar(){
		items.clear();
	}

	float total(){
		float total = 0
		for(ItemCarro item : items){
			total += item.total()
		}
	}

	List<Producto> getProductos(){
		ArrayList<Producto> productos = new ArrayList<Producto>()
		for(ItemCarro item : items){
			productos.add(item.producto)
		}
		return productos
	}

	int cantidad(Producto producto){
	}
}
